A software package is used in object-oriented programming to name a group of related classes of a program. Packages are useful to measure and control the inherent coupling of a program. An example of a package is the Java package which contains or groups together all the classes in the Java programming language that aid input and output of data, such as the buffered reader class which is used to accept user input from the keyboard.
However, each software package may be built using different environment and different versions. In order to reproduce the build at a future date, one would have to track down the version and the platform that was used to build the software package.